__________________________________________ / \ / \ : PLEASE READ ALL OF THIS FILE. IT CONTAINS : : IMPORTANT INFORMATION ABOUT USING HBBS : \ / \__________________________________________/ Changes ======= This file details everything I do to hbbs in a coding session starting with the newest first (so you don't have to scroll to the bottom of the file!) I've noted which versions were alpha releases next to the date, so you can see just how much work I am doing between releases.. Where possible I've detailed the changes under a heading of the program's filename where code changes have been made, other changes to the general setup will just appear under the date. 05-NOV-1996 =========== Happy guy fawkes day!!! I've already seen enough fireworks on saturday so I'm going to be boring and stay in tonight! :-) Spent most of the evening tiedying up some config files and checking things out, and getting HBBS ready for the next alpha release XPR === Opens the serial port with XON/XOFF enabled when you are using a nullmodem cable. Control ======= Fixed LoadProtocols() subroutine so that it loads more than one protocol! Screens.guide ============= Updated to document usage of @^@ sequences with regard to print formatting e.g. @^-20.20^ComputerName@ FileLister ========== Changed some ansi JoinConference ============== Changed some more ansi if there are less than 10 confs there is no space between the [ and the number anymore LastCallers =========== Was linewrapping on some terminal emulators, so removed one char from the group item Pager ===== Made the Ctrl+C checking actually work :-) 31-OCT-1996 =========== Versionstrings! --------------- I have gone to great lengths to ensure that every major part of hbbs and every door now has a version string. To check the version of a program do "Version FULL" FrontEnd ======== Added a timeout value of 30 seconds to each password prompt so the bbs never sits around waiting for a dumbass user to enter a node password! Pager ===== Added Ctrl+C Checking (Just for you radiosity... :-) HBBSCommon ========== changed the HBBS_LogError() function so the log files look nicer and easier to read Control ======= Now writes to the bbs error log file when it is started and stopped Node ==== Now writes to the bbs error log file when a node is started or stopped XPR === What a DICK, I'm a HUUUUUGE fat dick. tho shalt not confuse | with || when setting variables.... i accidentally had the line: WaitSigs=(1L<mp_SigBit) || (1L<mp_SigBit); when it should have been WaitSigs=(1L<mp_SigBit) | (1L<mp_SigBit); so when I did a Wait(WaitSigs) it wait waiting for 0x01 instead of the actual signal bits! Major OOOOops! Node_Serial.c ============= If you are using a null modem cable then it sets the serial port options up differently. *D*ocument **** IMPORTANT ****** if you are using the USRSerial.device and have NullModemCable set to true in the device config for a node then you must use a 7 wire null modem cable If you only have a 3 wire null modem cable then you should use serial.device instead Transfer ======== is displayed "[S]tart Transfer," twice CheckFiles ========== the "." was not in the list of allowed chars for filenames so it complained about more or less every file! 29-OCT-1996 =========== NewUser ======= The message in the BBS Log file now contains the handle and group of the user just created ********************************** IMPORTANT ****************************************** The following settings have now been moved to a more suitable location: HBBS:Conferences/ConfList/NewUserConf -> HBBS:Doors/System/NewUser/NewUser.CFG/ConfNum HBBS:BBSGlobal/NewUserAccessLevel -> HBBS:Doors/System/NewUser/NewUser.CFG/AccessLevel and a new setting HBBS:Doors/System/NewUser/NewUser.CFG/TimeAllowed has been added more to come! HBBSCommon.library ================== HBBS_InitUserData() has been updated, you now pass it an Access level and a conf number for it to base its settings on. structures.h ============ BBSGlobal.NewUserAccessLevel BBSGlobal.NewUserConf have both been removed. Control ======= BBSGlobal.NewUserAccessLevel BBSGlobal.NewUserConf are not read from the config files anymore 09-OCT-1996 =========== Todo.TXT ======== Updated this list and ordered most of it. Account Edit ============ Implemented new user searching. HBBSCommon ========== Fixed and highlighted a few bugs and problems that I've found with a couple of my methods FrontEnd ======== Oops! User with a DELETED status could still login! :-) 08-OCT-1996 =========== Account Edit ============ Checks for valid access levels when you change a users access level! 02-SEP-1996 =========== Holy cow-dung batman! I've not been doing HBBS for over a whole month, sorry about that. Anyway, next week I'll be working on HBBS everyday so I should get quite a lot done with any luck. 21-AUG-1996 =========== Yoiks, having a girlfriend nicks all your time.... erm, anyway... Went bug hunting and made a big list of things that I need to do, also created HBBS:KnownProblems.TXT listing known problems that are NOT technically bugs. XPR === Did a bit of optimisation to try and fix the weird timeout problem when uploading via a real serial port.. AccountEdit =========== Revamped the code in a BIG way, started adding the stuff for checking for new users etc.. Announce ======== Changed ansi to make it cooler! 05-AUG-1996 =========== JoinConference ============== Whoops, in my hurry to get this out i forgot to finish the part where it rejoin the users prefered conf or lastconf.... (ie, it ignored the SYSTEM parameter and joined the first conf it found) Node ==== Displays error messages if items from NodeLocal or Device are missing Oops, TurnOnEchoDelay in the device config was being ignored! Control ======= Displays error messages if items from NodeGlobal are missing ErrorMessage ============ changed so that it replaces @E@ with all the params after the nodenum rather than just the first one HBBSCommon.library ================== HBBS_GetSetting was ignoring VTYPE_TIME. 01-AUG-1996 =========== PCMCIA scsi cards are cool..... anyway... Sorry for the lack of progress over the last couple of weeks, been somewhat busy with new toys, linux, women and my car.. :-) CheckUser ========= Now checks for the (lack of) user's conf acs data file. Account Edit ============ ditto NodeLibrary =========== added HBBS_AllowConfAccess(), call this to see if a user is allowed to join the conf number specified.. JoinConference ============== moved AllowAccess() to Nodelibrary :-) Version Numbers =============== Some people have pointed out that all the version numbers on various parts of the program never seem to match up. Well the reason for this is that it's all too easy to forgot to change them.. The one on the Await Screen (Await.TXT) should however always have the correct version number on it (is it's the easist one to change :-) 25-JUL-1996 =========== Hey, Linux roolz... A Much better OS than Windows to run on a PC.. (he says after installing it on his new laptop computer and playing with that for about a week) Oops. Back to HBBS.. Node ==== Fixed a little (?!) bug in my CheckRaw() code, it wasn't checking to see if the serial device or the console device were acutally open before using them which resulted in a crash of the node program! Thanks to Joel for pointing this out to me... CheckFiles ========== Now checks for invalid chars in filenames, the only chars that are allowed are: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqurstuvwxyz1234567890-_@!" 16-JUL-1996 =========== Node ==== Bug Fix: DisplaySpecialScreen() was using User.NormalData to find the access instead of User.CallData. This meant screens were not displayed if you changed the users access level for the duration of the call! Added GL_CVTUPPER GetLine() Flag to convert keys to uppercase as they are pressed! Nodelibrary =========== Fixed bug with HBBS_LoadConfAcs where it was looking for a config item called See_XX instead of SeeOverride_XX... JoinConference ============== Rewrote the entire door, it's better to use, looks nicer *AND* the code is realllllly nice now (as opposed to the complete mess it was before.. I'm ashamed to own up to coding the old one :-) AccountEditor ============= Added option to change preferred conference 15-JUL-1996 - Alpha Release 10a Uploaded to Aminet ================================================== Note: if your users have lots of CRC errors when uploading files using the serial port then change the xprzmodem.ibrary to a different one. see files: HBBS:System/Amiga/Libs/XPR/xprzmodem#?.library Rewrote readme.1st as it had become just a touch out of date! :-) Downloaded Joel Juillerat's doors from aminet and have decided to include them in the official HBBS archive as they are quite cool.. The doors can be found in the usual place, the directory names have _JJ added to them so you know who's are who's... :-) See the HBBS:Docs/Doors for details of Joel's doors.. Logout ====== Temporarilay disabled option of logging out after a transfer until i have a chance to implement it.. Transfer ======== Added NOGOODBYE parameter to disable "[G]oodbye After Xfer" ModifyDIZ ========= added an ansi esc seq to move up one line when a blank line is detected (e-o-diz) so that the diz looks the same on screen as it will in the file AddDIZToList ============ Now add's the sentby.. (a whole 5 lines of new code..) ExtractDIZ ========== tells the user what kind of file it is.. FileLister ========== Now displays sentby lines! 13-JUL-1996 - Alpha Release 10 Distributed Today (Only On Utopia!) ================================================================== Utopia! BBS is now set-up again, the number to call is +44(0)1202 434121 09-JUL-1996 =========== Did a bit of testing HydraBBS from work today, It seems actually pretty fast on the users side even when using a 14.4k modem with HyperTerminal on windows '95 :-) Shell ===== Just realised that XPR needs a trailing / or : on any download path (adds names to path) so had to modify the xpr door call. Sets the new action flag, ACTN_USEDSHELL (see defines.h) XPR === changed it so that you don't need /'s to be on the end of a path! :-) HBBSCommon.Library ================== HBBS_ValidUserHandle() checks for ;'s and ,'s in the username, returns FALSE if found.. 08-JUL-1996 =========== All in all, a good days work... Shell ===== Fixed the shell door so that it doesn't take creds for downloaded files :-)) :-) Hhehehheehheeee... Ooops, giggle, smirk hehehe hohoho haha... also fixed it's incorrect responce of "Command Not Found" when a program returned an errorlevel.. :-) XPR === Fixed stack problems, (see the __stack and scoptions...) xpr does not work unless you set CODE and DATA to FAR, so __stack must be __near'd.... fixed the W= options so that it works now :-) hehe, i was actually checking for existance of the file in the wrong place! Oops! Node ==== Whay, cool.... Added IN_DIALOUT to possible returns for GetLine() if the await connect door gets it then it'll ask for a phone number and it'll dial it... This roolz as it means sysops have the possibility to initiate a call rather than the user! Most excellent! AwaitConnect ============ Added support for IN_DIALOUT, oh yeah, you need to press Shift + F9 on the await screen to use it! Mail_Write ========== Added new option to config file (HBBS:Doors/User/Mail/Mail.CFG) called DefaultExpiryDays, defaults to 30 days. All messages can be made to expire by use of the access setting: AutoExpireMsg=YES ExtractDIZ ========== Displays name of file.. HBBSCommon.library ================== Fixed a bug in HBBS_RunDOSCMD() where i was using replace() directly on one of the inputs to the function, rather than taking a copy of the input and using that (which it now does) this could have caused memory corruption!! also made it so that it *ALWAYS* opens an output handle. instead of only opening an ouputhande when noredirection was used... (this seems to have fixed the random lockups of the shell door) Editor ====== added GL_HISTORY to the GetLine() call.. added Line Editing added message listing.. added ability to delete lines added a CLS option, press W at the menu prompt, it's not on the list tho... 07-JUL-1996 =========== Wall ==== Changed the format of the history file, it no longer pads the output string and adds the handle to the end of it. Logout ====== If you have tagged files it will display them (via the A door, "A L") then it will ask you if you are sure you want to logout now.. You can use the N parameter (N for NOW) on the logout command to skip checking. i.e. "G N" to logout without checking tagged files Shell ===== did a bit more flaffing around with this door, at the moment it seems to lockup randomly while running a command (locks up doing HBBS_RunDOSCMD() Doesn't seem to be a stack related problem, i can't seem to figure out what the blazes is going wrong with it...) XPR === Added a W= option to the commandline, so that if you want to pass it some filenames with a full path, it'll add whatever path you specify with this parameter. note: don't use dirs with spaces in! *C* Node_Input.c ============ Modified GetL_ine() so that when you use the PasswordChar parameter with a promptstr the promptstr is displayed using the PasswordChar. * Thanks to Joel for noticing that problem! 05-JUL-1996 =========== Shell ===== Created a cool (and simple) shell door for sysops to use, features uploading and downloading to current directory! Woooooo! 01-JUL-1996 =========== ************************* VERY IMPORTANT ***************************** ************************* VERY IMPORTANT ***************************** ************************* VERY IMPORTANT ***************************** ************************* VERY IMPORTANT ***************************** ************************* VERY IMPORTANT ***************************** ************************* VERY IMPORTANT ***************************** As of today, all Command config files are changed!!! Read on... Node ==== _Type_ params in command files have been changed! Now use one of CLS, CLI, HBBS, ECHO, DOS, SCREEN or SSCREEN i.e. NORMAL has been changed to HBBS Right, small change, but big effect... All _Door_ options in command files take the following format... (For CLI and HBBS type doors only) _Door_= [][{N}][{O}][...] e.g. FR_Type_1=HBBS FR_Door_1=HBBS:Doors/User/FileLister/FileLister.HBBS {N} {O} FR_Param_1=REVERSE {N} is replaced with the nodenum {O} is replaced with the options typed at the bbs prompt, so if a user on node 2 types in FR -1 The actual command that gets run is: HBBS:Doors/User/FileLister/FileLister.HBBS 2 -1 you can use {N} and {O} ANYWHERE in the Door_ parameter, so you could even run different executable files from different directories depending on what node you were on.... I may decide to create more {x} codes in the future too... Any suggestions welcome.. This makes running doors even more flexible now... example.. before now, you had to specify a system option to the mail door to force it to a particular type of mail. e.g. C_Type_1=NORMAL C_Door_1=HBBS:Doors/User/Mail/Mail_Write.HBBS C_Param_1=COMMENT But now you can set it up like this... C_Type_1=HBBS C_Door_1=HBBS:Doors/User/Mail/Mail_Write.HBBS {N} S {O} which is the same as the user typing "E C" at the bbs prompt... You can even do this: (example for nodestats) NSTAT_Type_1=SSCREEN NSTAT_Door_1=NSTATS{N} so if you were on node 2 and you typed NSTAT you'd get the screen called HBBS:Screens/Special/NSTATS2.TXT Cool or what ? Hope you all understand that and my reason for doing it. And sorry for the inconvenince of making you change ALL your command files :-( Wall ==== Now creates Wall.History in it's progdir: this records time/date/handle and text HBBSCommon.Library ================== Updated AssignOK() to cope with "Progdir:" which is a valid assign, but does not appear on volume lists! Ooohhh... I love you C=! I've only noticed this now cos I changed the wall which uses HBBS_SaveConfig() which uses AssignOK() on the path... Mail_Reply ========== Updated the quoting of messages part. You now get the option to quote all the message or just a section of it.. (At Last!!!!!) Mail_Read ========= If a message has no expiry date, then it won't be printed on the screen Zippy ===== Added Ctrl-C checking and fixed a bug where it sometimes displayed the last line twice of the last file in the filelist JoinConf ======== Fixed so it logs you off if you can't rejoin any conferences at login time... 30-06-1996 Update Pack #3 Released ================================== Oh bugger... I've made a slight miscalculation on the FILE_ID lengths i thought 48 would work, but it was 3 chars too long (causes linewrap) so I've had to change it to 45, BUT, the sentby in the user.data is still set to 48, doh... I've added a #define called LEN_DIZWIDTH now... I'll not change the sentby length to 45 until the next full alpha release... (however, the sentby door and the ModifyDIZ doors have been corrected..) SentBy ====== Changed to cope with LEN_DIZWIDTH Changed the ANSI ModifyDIZ ========= Changed to cope with LEN_DIZWIDTH HBBSCommon.library ================== Changed HBBS_RunDOSCMD() so that it supports redirection. if it detects a > or < charater in the command it is going to run it will not open the standard console output. Time (T at BBSPrompt) ===================== Created a new door, uing the new features of HBBS_RunDOSCMD(). It now writes the time to a temp file, and runs figlet to convert this file into cool ascii which is then displayed using DOOR_DisplayScreen() if you look at the source you'll see why I had to change HBBS_RunDOSCMD() above. FileHistory =========== Called after ExtractDIZ, this door create a file called .History in lha archives and lists all the bbs's, users and time/date of upload to that bbs so you can trace the file! Cool for bbs/trader charts. HBBS:System/FileID ================== Added <>nil: to each of the commands so that no output is seen from them (previously a window appeared on the control screen and went away again which was a bit annoying if you were trying into another window at the same time as a file_id.diz was being extracted! hehe..) Docs ==== Updaed a few of the docs, created a nw subdir in HBBS:Docs called Doors in which you should store all your .Guide files for all your doors. Don't forget to update DOORIndex.Guide when you put a new file in there FileLister ========== Found a rather major bug in the "New" list part of the program, it did't work unless there was a blank line between each file in the filelist!!?!! HBBSCommon.Library ================== was not initalising User->SentBy which caused a new user to get the sentby of the last person that logged in, fixed now MailScan ======== wasn't checking for the access level setting, therefore users could read mail that had an access level above their own access level, fixed now... 29-06-1996 Update Pack #2 Released ================================== Argh, I hate getting colds... (the flu..) CheckTags ========= Prints the date the user last called instead of DD/MMM/YY now.. CheckFiles ========== Now sets the user's LastUploadDate when a file is uploaded to a conference dir. Node ==== added two new @^@ codes, TIME and DATE... :-) Screens ======= changed the await screen again. 27-06-1996 ========== Most of today's coding was working on implementation of user time stuff. FileLister ========== Pressing Ctrl-c now displays the Prompt that you'd normally get at the bottom of a page, cool! Also fixed bug in that it would always say End-Of-File even tho it wasn't at it.. (this was just the wrong string passed to DOOR_MenuPrompt()) Frontend ======== added GL_NOOLM's too all the GetLine()'s... Logout ====== Moved most of the door to DOOR_Goodbye(); CommandPrompt ============= Added Autologoff when time runs out... Displays a message when a users time runs out if it can't find the specialscreen "NOTIME" Access.h ======== Added New Access Settings (120-123, Unlimxxxx) Account Edit ============ Added options (12,13 and 14) regarding time settings HBBSNode.library ================ added HBBS_TimeOnline() and HBBS_TimeLeft(), HBBS_TimeLeft() returns a LONG and can be a negative value (i.e. been on more that alloted time..) Updated {L} code (TimeLeft) Added {O} code for time online Updated LoadAccess() to cope with new access settings (see above) Added DOOR_Goodbye() which performs all the things needed to complete a sucessful logoff.. (see Logout above) Node ==== now adds "Time Online: " to the callers log when a user logs off.. so adjust your bulletin makers to find out how long a bbs was used for in a 24hr period. (for instance..) Added a new @^@ Code called @^TIMELEFT@ Updated the @^TIMEUSED@ code. Reminder: {?} codes are used on prompts (like command prompt) @^@ codes are used in screens (like the stats screen) 25-06-1996 ========== HBBSNode.Library ================ ***** ADDED DOOR_CheckRaw(), see HBBS:Source/Doors_User/Test/Main.C for an example of Ctrl-C checking. Basically, the gist of this function is that you call it and it returns true if it got a byte of data from either the serial port or the console device (depending on what was asked for..), you then check N_ND->CurrentLine[0] for that byte that was received. N_ND->CurrentLine[1] is set to 0 (to null terminate it) N_ND->CurrentLine[2] is set to 0x01 to denote input from console or 0x02 for serial note: if the sysop was to press Cursor left at *exactly* the same time as the user on-line then you might get a weird result if you were checking for the 2 character control sequence that pressing cursor left gives you. However, console input is processed before serial input so you might not!.. i.e. check console if data from console then return true check serial if data from serial then return true return false anyway, all those door codes who wanted raw input, here it is, so get coding raw input doors NOW... I'll be updating all my filelister/text viewer doors for ctrl-c checking v.soon... FileLister ========== When doing non-stop lists (a or l), it will now check for ctrl-c at the bottom of each page. Wow! 24-06-1996 ========== CUNTS, CUNTS the lot of em... I hate people that nick car stereo's... Today I wake up, go to the car and it's been fucking broken into. I have all the luck.. I'd just kitted it out with 1200 quid's worth of stereo.. (oh, yeah, I bought a nice new BMW 316 last month, so I'm now the proud owner of 2 of them! Heheh, this one's much newer and faster tho... has lowered suspension too.. Anyway...) Oh well, there goes another 500 quid to replace the Multi-CD player, Broken glass and Infared Remote control for the head unit.. Didn't do any work on HBBS today as I was too busy repairing my A4000's hard disks after a major crash... Fortunatly I didn't loose any HBBS stuff at all... 23-06-1996 ========== HBBSNode.library ================ fixed a slight bug that caused HBBS to crash if you started a node, logged in, logged out, shutdown and then restarted and then logged in.. As you can see it was a BIT hard to find :-) heheh.. 22-06-1996 ========== Included some 3rdParty software in HBBS:Utils/3rdParty Mirage - A very cool IFFANIM-ANSIANIM converter! THEAnsiEd - A beta version of an ANSI editor written by me, It's not finished yet, but you can use it to create 100% perfect ansi files (unlike other ansi editors) A lot of menu functions and features do not work yet and it's also a bit slow on the old screen refresh, but it's still cool... Oh, and It also supports @^@ codes in files! (AutoDetects an HBBS file... Cool or what ! !?!?!?!?!?!!!!) Node ==== Added GL_NODISTURB DOOR_GetLine() flag, if set, hbbs will not disturb the characters on the right hand side of where the string is to be entered. e.g. you can now write some text like this "Enter ID: [ ]" and with the GL_NODISTURB flag set the ] will stay firmly in place... However, don't use a maxlen value that makes hbbs linewrap (i.e. don't position ask for a string 20 chars long when you're starting at position 70) At the moment it's best not to specify GL_HISTORY as pressing up/down (and ctrl-x) wipes the line. to be fixed shortly.. AccountEdit =========== Fixed (slight) bug on length of ConfAcsDataFile was set to LEMN_GROUP instead of LEN_CONFACSFILE Added new option to change the SentBy string AskSentBy (SENT at bbs prompt) ============================== Created door. 21-06-1996 ========== No work really, just tiedied a few files here and there.. 20-06-1996 ========== Skived work today after getting completely wasted last night, so I've got a bit of time on my hands today. Node ==== Fixed small bug with the commands that were created from @^SYSDOOR@ commands in screens. AccountEdit =========== Changed this a bit to validate Access Levels, also added a Validate User option and a tiny bit of help regarding it.. FrontEnd ======== Hack door can be called with several parameters now, they are: TIME - User has no time left today. PSWD - Password Failed LOCK - Account Is Locked Out (Status=L) with these parameters the user has the chance to leave a message to the sysop so that the sysop can get back to the user. Heheh, so you can have loads of users annying the bollox of you asking for more time! :-) Hack ==== Created Door! It also used some special screens, depending on the reason for the hack attempt to be caused (no time, password, locked account) HACK will display a different screen, so far these are: HACK_PSWD, HACK_LOCK, HACK_TIME. When the user logs off again the screen HACK_BYE is displayed.. Have a look in HBBS:Screens/Special for examples 19-06-1996 ========== Happy Birthday To Me!! Uploaded to Aminet, Comm/BBS/HydraBBSA9.lha and Comm/BBS/HydraBBSA9src.LHA 18-06-1996 ========== Whay, it's my birthday tomorrow! SetSuspect ========== Yeah, you'll like this handy util... Ever had a user do weird things on your bbs and you wondered what had happened ? then this door is for you! You give it a list of users that you think are suspect and when they log on next, the doorlog setting in your nodes config is overridden having the effect of making it log all doors that are used by the user! Cool... Checkout the Source Code of the door for full details Doors_System/SetSuspect Mail_Write ========== You can now specify what type of mail you are going to write by using system parameters, see the EC door example in HBBS:Commands/Level_50 use any of the following: COMMENT, PUBLIC, CONFERENCE, USER, INTERNET Docs ==== Added info about WebSite in HBBS.Guide Control ======= Pressing "Configure" with the Config window already open brings it to the front! Node ==== Added DoorLog and DoorLogFile and DoorLogOverride to Node (see shared.c, NodeLocal, NodeGlobal, structures.h) DoorLogOverRide is only set for the duration of the call and may be set by any door to start logging doors from that point on, setting N_ND->DoorLogOverRide to TRUE means that any door that's run will be logged in the file specified by N_ND->NodeSettings->DoorLogFile regardless of wether N_ND->NodeSettings->DoorLog is ON or OFF. Totals: gets written to the callers log now, so that other programs can see what the user did when online.. e.g. 18-JUN-1996 21:56:34 ************************************************[LOCAL]** 18-JUN-1996 21:56:35 User logged in, Handle: Hydra Group: LSD Speed: LOCAL 18-JUN-1996 21:58:43 Actions: SWR 18-JUN-1996 21:58:43 Totals: FU=0 FD=0 BU=0 BD=0 PM=0 NK=0 MR=6 MW=3 18-JUN-1996 21:58:44 End Of Session Item Meaning FU Files Uploaded FD Files Downloaded BU Bytes Uploaded BD Bytes Downloaded PM Pages Made NK Files Nuked (that is, other users files that the user nuked using a nuker) MR Messages Read MW Messages Written The oder of these may change, and more will probably be added, they also might not all be two charater codes (may be more, maybe less...) so make your doors cope! Structures.h ============ Added KeepDIZWithFile to ConfData, also see the ConfConfig files for a setting of the same name... MoveFile ======== Added new parameters, MOVEDIZ which will move the .DIZ to the same place as the file CheckFiles ========== Changed to cope with MoveFile's new option 17-06-1996 ========== FUCK, it's 1:35AM and I've got work tomorrow! Doh! Still listening to DubStar is COOL.. My birthday on wednesday (2 days)... Wrote a couple of small scripts to rebuild all of the doors in one go the Mail/#? won't compile as it includes another source file and mkmk creates a smakefile that is wrong, so I've made it so that it does not go into subdirectories... see HBBS:Source/MakeDoor and HBBS:Source/RebuildDoors Created Example ConfAccess CFG files in HBBS:System/Data/ConfAccess See structures.h for ConfAcsData structure and N_ND->User.ConfAcs for data itself Changed HBBS:Access/Levels/Level_List so you can set which confaccess file to use by default. Control ======= added support for ConfAcs_XX in Access/Levels/Level_List file Node ==== moved HBBS:System/Data/TaggedFiles/ to HBBS:System/Data/Users//TaggedFiles.CFG HBBSNode.Library =============== Added HBBS_LoadConfAcsData() Updated HBBS_SetAccess() HBBSCommon.Library ================== Added HBBS_FindNode(List,Name), find's a node in the List with an ln_Name field the same as Name, or NULL if not found. Added HBBS_FindNodeNum(List,Name), save as HBBS_FindNode() except it returns the number of the node in the list, or -1 if not found. Updated HBBS_AddUser() creates directories called HBBS:System/Data/Users/ and one called HBBS:Mail/Users/ when a new user is added. it also SetComment()'s the directories with the user's handle etc.. (try creating a user and typing in this command to a shell window. LIST HBBS:System/Data/Users/#? lformat "UserID: %n, Created: %d, %c" Account Edit ============ Changed this so you can change the users setting for the ConfAccess file note: set the setting to just the name of the file without the .CFG and without the full path, and the file *MUST* exist at the moment as more extensive error checking still needs to be written for this feature.. e.g. "Normal Dood" see HBBS:System/Data/ConfAcs/#?.CFG 14-06-1996 ========== I have done work since 30-05-1996, but just not documented it... Anyway... **** IMPORTANT **** UserData format has changed so userdata created with HydraBBS A8 or earlier will not work, if you want to convert it then write your own program! Sorry, I do not have time.. to see what's changed just check out the structures.h files and see whats different... 30-05-1996 ========== Reminder! ========= when using GetLine, you can use the flag GL_NOOLM so that your door does not get interupted by OLM's... HBBSCommon.c/strings.h ====================== changed CtrlScrn in str_CONSOLE to @S@ and made RunDosCMD change all @S@'s to the current public screen name.. LogExtractor (in HBBS:Utils) ============================ Started work on this cool utility, that, when finished, will extract all data about a particular user from log files from one or more nodes and write it to a file (which can then be displayed by the program, or at a later date by the user.) It has the abilty to go back only a certain amount of days too.. Oh, and it's all GUI based too.. (CLI Options coming soon, makes a great sysop door too! (e.g. USRINFO Hydra 20 to show Hydra's bbs usage in the last 20 days!) 29-05-1996 ========== GoldED Sucks... Back to TTX! Structures.h ============ removed a few unused items and moved a few things around, also added ScreenInfoData structure and changed NodeUser.. mtype_ASK is not used and has been removed from all source... Control ======= Still changing it so that you can open HBBS on a public screen... (lots of work involved in doing this by the way, so I hope you are grateful) IMPORTANT!! =========== You must not ever try to LockPubScreen("CtrlScrn") anymore, instead use LockPubScreen(BBSGlobal->ScreenInfo.PubScreenName); if you are not opening the hbbs libraries (therefore mnot getting BBSGlobal) then check out the environment variable ENV:HBBS_ScreenName control, the nodes and all the doors have been re-compiled using the new/updated structures.h file. 24-05-1996 ========== Oh well, the alpha won't be ready for tomorrow anyway. doh.. :-) New text editor! I'm now using GoldED 3.x as my text editor as TurboText, reqtools/reqpatch and my New Cybervision64 GFX card don't get along very well.. All the icons will eventually change to using GoldED:GoldED instead of TTX as the default tool. Node ==== fixed the small line editing bug. cursor left was deleting the entire line instead of moving one char left. 16-05-1996 ========== Crikey, that's a big gap... Not been doing HBBS recently cos I've discovered London Nightlife! :-) hehee... Anyway, hopefully thing's will be back in full swing now. I'm going to concentrate on getting HBBS working as a BBS system and will have to leave alot of my really cool ideas for a later release, I just want to get to V1.0 as quickly as possible. Next full alpha release will be on the 25th of May 1996.. Mail_Write ---------- (and all other mail programs) Now reads Mail.CFG from the HBBS:doors/Mail directory, this only has two settings at the moment and these are to remove remove access to internet and fidonet mail options as I don't have time to write them yet. 29-02-1996 ========== Wow, a whole month to the day without doing a single bit of work on HBBS :-( I've not been able to do any work due to me relocating to london for my new job so sorry for no updates... Mail_Write ---------- asks if you are sure you want to abort a message 31-01-1996 ========== Free at last, well my current job has finished today, but I've got an interview for another one tomorrow. hope that goes well.. Anyway, yesterday I got my Apollo 4060 '060 Accellerator and it only half worked so it's gone back to the shop I bought it from for replacement. Basically it only worked intermittently and the scsi-2 and the fastram did not work either.. Great... But when it was working for about 5 mins I tried HBBS on it and it was mindblowingly fast, I've never seen a 256 col 1024x768 screen scroll text so fast :-) hehe.,.. for those that do not know my e-mail address has changed now, it is: dominicc@dircon.co.uk (note the 2 c's in dominicc) feel free to e-mail me about *ANYTHING*.... FrontEnd ======== added 2 new config options and changed the other option.. (so all config options are new from now...) they are: HandleToShortStr - displayed to a user when the handle they tried to use is too short InvalidHandleStr - displayed when a handle contains wildcards, ()'s ,'s or ;'s HangupCommand - what the user must type to log-off (defaults to "BYE") 25-01-1996 ========== Bollox, living in the UK sucks sometimes.. My fucking CarTax has run out and so has my fucking MOT so I gotta spend loads of money on my BMW 316 so I can actually legally drive the fucking thing... BASTARD Governments.. AAnnnnyyway.. back to hbbs.. FrontEnd ======== Has a config file which contains some strings, e.g. BadHandle, see HBBS:Doors/System/Frontend/FrontEnd.CFG AskDLFiles ========== Fixed a minor(!!) bug in that if a user had gone over their limit it would still let them D/L files.. OOops! :-) Node_input.c Node_Misc.c HBBSCommon.c ===================================== Changed a bit more so that text/screen output is faster still... it's still pretty slow, the thing that's holding it down is the routines used to conver the @^@ commands to text.. if you use the ? command from the file lister you'll see that it's blisteringly fast. but if use the 'S' door you'll see that it's a bit slow... (but still fast enough for mere mortals..) I can do the following to speed it up: queue DOOR_WriteTexts() and return control back to the door immediately (but to do this I'd have to take a copy of the data they pass to the BBS which would slow it down again, argh, I can't win..) use buffered/async IO on the screen files erm... any suggestions... (apart from code it in ASM :-) 24-01-1996 ========== FileLister ========== fixed a rather serious bug in that it crashed the machine if a file id had a long line of text in it... HBBSCommon/HBBSNode =================== speeded up some routiens so that it outputs text/ansi faster... Node (NodeMisc.c) ================= re-wrote alot of the code used to display screens (to make it faster!!) you now DON'T need to start HBBS screen files with @^@ anymore... (tho this may change in the future if I recode it.. the @^@'s are just skipped now.. 23-01-1996 ========== Sorry! ====== Note really had much chance do do stuff on HydraBBS for a a couple of weeks due to me getting a) an internet account and learning how to setup/use amitcp (which is coool) b) getting a CyberVision 64 GFX card c) buying an Apollo 4060 68060 50Mhz Accellerator for my A4000 so that I can compile stuff using SAS/C a hell of a lot quicker, d) getting about 10 new PS-X games :-) and a couple of saturn ones too! e) buying a mobile phone and f) getting 4 new hard disks and re-organizing all of my 3 amiga's with new setup's, latest software etc... Annnnyway.. back to HBBS.. -------------------------- LastCallers ----------- Fixed a few bugs in this handy util that were caused when do didn't have all the parameters (or didn't have optional ones, thanks to Radiosity for pointing this out..) 5/6/7-01-1996 ============= Loads of stuff, configurable prompts now done, check out HBBS:System/Data/BBSColours.CFG HBBS:Nodes/NodeX/BBSColours.CFG HBBS:Conferences//BBSColours.CFG I've done sooo much these last 3 days that I forgot to write in this file and now I can't remember what I've been doing apart from doing a bit more no the fr and olm doors... added a BBSGlobal->CallsEver (kinda handy..) this will be loaded/saved from the HBBS:System/Data/Private file when i implement it's usage.. oh yeah, and I added a Flags parameter to the loadconfig so just add ,LCFG_NONE to all your current calles to it, check out defines.h to see what's what.. (they were primally added so i could read ansi strings from a file into a config item, at the mo ;'s are used to denote comments, I'll have to change that to something else soon..) 04-01-1996 ========== HBBSCommon.library ================== ===================================== I T ' S C H A L L E N G E T I M E ===================================== I can't for the life of me figure out why the bloody hell my new version of HBBS_LoadConfig() causes the control program to hand the machine when it loads the HBBS:System/Protocols file. The new version of HBBS_LoadConfig() is currently commented out, and the old one is still in use (although it has several bugs fixed..) just change the comments round, re-compile and see what I mean... I've tried allsorts to see what's happening but to no avail, everything seems normal! Argh.. I hate bugs like this... Sooo, if you fix this bug then I'll give you a nice crispy 5 pound note! (if you are not from the UK then, erm, well I'll write you a custom door or sommat...) Node ==== Implemented the NFLG_CTRLC flag, if a users presses ctrl+c during a getline() then the NFLG_CTRLC bit will be set in N_ND->NodeFlags Added The variables needed to implement OLM's, checkout N_ND->OLMCount and N_ND->OLMList and struct OLMNode in structures.h and NFLG_OLMSWAITING in defines.h.. to add an OLMNode to the OLMList call HBBSNode.library's HBBS_AddOLM() function (see HBBSNode.c) there's also a few more NFLG's to look at. also note the new GetLine flag, GL_NOOLMS HBBSCommon.library ================== Added the function HBBS_SendOLM() very easy to use and works a treat too!, for an example check out ReadOLM and the OnlineMessage (OLM) doors.. OnlineMessage ============= created door, installed as OLM this door sends messages to other nodes. ReadOLM ======= created this SYSTEM door, it's called when the user is at a getline prompt automatically, it displays all the queued OLM's one by one and lets the user reply to them if they came from another node.. If you send a message from an external program you must make sure that you set up the olm so that the user cannot reply to it! :-) hehe.. SendOLM ======= this is a rather handy AmigaDOS CLI program to send OLM's to nodes, note: this is NOT a door!!! Man HBBS is cool.. do that with /X ! 03-01-1996 ========== MailScan and MailRead ===================== Wow, this is cool now.. I've finally finished off the new mail scanning part of this door. (apart from the mark as read option) prior to this version if you scanned mail, but only read a few of the mail messages the ones that you didn't read would not appear in the next mailscan, they do now! (Check Out HBBS:Mail/Users//UnreadList.CFG) HBBSCommon.library -> READ THIS! ================== really optimized and bug fixed HBBS_LoadConfig() and HBBS_LoadFile() you should find that the whole bbs now speeds up dramatically!! ReLogin ======= Created Relogin door, installed as command RL for users with access of 50 or over. And yes, the logoff scripts (see below) do get called if you use this command! (Unlike /X where you had to logoff and call back if you wanted to see updated bulletins that only updated when the logoff script was called) Node ==== Logoff scripts are now implemented, when a user logs off the following AmigaDOS scripts are executed (S flag need not be set, they are run via the dos C:Execute Command) HBBS:Scripts/LogOff.script HBBS:Scripts/GlobalLogOff.script both scripts are started with the following parameters if you want to access the users handle from your logoff scripts then use the environment variable "HNodeUser" e.g. use $HNode1User for the name of the user on node 1.. the reason usernames/handles are not passes as parameters is that they MAY have spaces in the filenames... also note the environment variable "HNodeLoginType" see HBBS:Scripts/GlobalLogoff.script for an example! Docs ==== updated the following doc files a bit HBBS:Docs/Misc/GUI.guide HBBS:Docs/Misc/Directories.guide HBBS:HBBS.Guide AddDIZToList ============ added a parameter check and writes to callers log if it has a problem.. 02-01-1996 ========== XPR === you can now resume files that you started to upload but either cancelled or lost carrier.. uploaded files are stored as /@ e.g. HBBS:Conferences/Amiga/PartUpload/BANANA.LHA@1 you must however set the xpr protocol options so that it allows resuming of files.. (E.G. Include "OR" in the protocol options, see the new updated HBBS:System/Protocols file...) FileLister ========== Woooooooooooooooooooooo, well quick now... rewrote my FGetsR() routine to be mucho quickero.. :-) FGetsR() just reads lines from a file starting from the current position and working backwards instead of forwards like the dos FGets(), hence the 'R' in the function name standing for Reverse.. I'll be putting this *COOL* function in the library soon! Also responds to a user handing up while browsing a filelist now.. added an H parameter so that you can scan the "holdlist" file of the conf you are in (Sysop's only..) works with all modes (FR,N and F) so N -2 H is cool! updated ansi when flagging files. does not clear screen at end of file anymore. View ==== fixed bugs and added sysop mode Zippy ===== same bug as filelist with the not checking for lost carrier.. fixed. also updated ansi when flagging files does not clear screen at end of file anymore.. 01-01-1996 ========== H A P P Y N E W Y E A R ! Man my neck hurts.... And I can't remember why, alcohol roolz.. FileLister ========== FR WORKS NOW!! But it's realllllllly slow as I just did a real quick'n'easy way of reading the file backwards.. It'll be speedier sooon. XPR === now checks other node's playpen dirs for existance of the file that a user is trying to upload (someone else might already be uploading it..) Pager ===== created door, installed as O command at the bbs prompt it uses 3 4 new screens that should be placed in a screens/special dir.. Page.TXT - displayed before the page reason prompt Paged.TXT - displayed when a sysop has been paged PageNoSysop.TXT - for when the chatflag is off PageCancel.TXT - for when a user cancels a page LinesPerScreen ============== created door. 100% cool and rather easy to create.. installed as LPS at the bbs prompt, or accessable from the W command 31-12-1995 ========== HBBSCommon.library ================== changed so that will read and keep config items with blank strings.. e.g. Door_Options= needed this for the UserSettings door... Control ======= updated gui (again) Node ==== made it use HBBS.font on the screen title as well.. SelectLanguage ============== updated program, much cooler now.. 30-12-1995 ========== Done loads more on the XPR door, moves cancelled files to PartUpload etc.. and some other bits and bobs.. Control/Node ============ changed all LCFiles references to PartUpload as LCFiles will not be used.. CHANGE YOUR CONFERENCE CONFIGS! MoveFile ======== now accepts a NOUSER parameter, if specified it will not display anything on the screen 29-12-1995 ========== anyway, I'm tired now and want to go to sleep.. to many l8 nights coding away on this... It can't be good for me.. Mind you, I saw ace venture 2 today and that was quite a good film.. XPR === re-wrote most of the XPR door, it now does things much better are more structured and doesn't guess at strings to figure out of files have been transferred ok! :-) it now builds a linked list of files transferred (one for ul's and one for dl's) and checks them at the end to find out what's what.. MailReply ========= Fixed a (small) bug in this door that caused it to crash on my A3000, but not on my 2 other computers making it a pain to track down... turns out I was going strcpy(Msg->To,Msg->From) instead of FreeAndSet(&Msg->To,Msg->From)... caused memorylist corruption.. 28-12-1995 ========== did sod all on HBBS today, first time for ages.. :-) 27-12-1995 ========== didn't do much today, tiedied a couple of bits and bobs up here and there did a bit more on the mail and xpr doors.. the caller and calls today on each node's "Info" window now work 100%, but I have got to make it read in the callers log so that it shows who the last few callers were when you close and node and then restart it.. 26-12-1995 ========== Had a bit of a bugfixing day today.. UserSettings ============ This door is set up as "W" at the bbs prompt.. Man, is this door cool.. with /X you could either get the W command to bring up internal /X settings config program, or you could make it display a menu of what you wanted to change (i.e. AquaSettings) But with this COOL command you can specify what all the options on one screen! Check out HBBS:Doors/User/UserSettings/UserSettings.CFG. Icons ===== updated all the .info files to cool magic WB one.. Control ======= fixed a few memory leaks updated it to use some new library routines added a new parameter to BBSGlobal, CopyBufferSize (see docs) HBBSNode.library ================ added HBBS_AddToCallersLog(string), rather handy, it writes the date and time automatically too.. Node ==== Made it write to the callers log.. need some options to make it ignore local logins etc.. tho. HBBSCommon.library ================== addd more routines, changed a few more, added (even) more error checking to some routines that deal with mem [de]allocation. Docs ==== updated the BBSGlobal.guide file.. 25-12-1005 ========== Yes, I was programming HBBS on christmas day, well it was better than sitting down stairs with the parents watching the fucking queen's speech. It was much more fun sitting upstairs listening to a bit of "Green Day", "Offspring", "Speedy J" and many other cool artists! XPR === fuck.. actually it still doesn't work :-( Doh.. I could have sworn it was working yesterday 100%, but no you still get timeout errors when it writes to the disk :-( Not fixed it yet tho.. FileList ======== Man, is this door cool! F and N work 100% pure coolness.. Zippy Search ============ well, my brother wrote this rather nice door. most of the code was nicked from my own doors tho :-) hehe Tag File ======== Prints CR's after files that have not been found now.. AccountEditor ============= this is working better now.. It also tells the user at the other end that the sysop is editing your account details.. It also reloads the access levels in when you quit it.. JoinConference ============== added another system option to it, "REJOIN" and have set up a command called RJ so you can rejoin a conference if you wish to see bulletins, etc.. --> requested by Cruise! HBBSCommon.library ================== added lots of routins for converting between dates and back to strings.. see the FileList door for examples! CheckFiles ========== now checks names of uploaded files (can't start with a '.' and can't be more than 12 chars long.. if they are it'll prompt you.. 24-12-1995 ========== XPR === yeah, it's working, and without buffered io, (but I'll still implement this..) I'm using zprzmodem.library 3.0 and USRSerial.device and it works a treat! Node ==== screen/window information is now saved in /Screen.CFG rather than HBBS:System/Data/Node_Private.CFG that way, if you delete a node, you delete it's associated data files too 23-12-1995 ========== XPR === the words AAAAAAAAAAAAAAAArrrgghhhh! spring to mind when thinking about this F**king door! it sends files fine, but can I get it to fucking receive files ? Can i FUCK as like.. it all seems to boil down to the xpr_fwrite() function.. if i make it return(Size * Count) then you don't get *any* timeouts or anything even when the CPU's loaded! but if I make it return(Write(FileBuf->FH,Buffer,Size*Count)); then it just makes xpr_sread() timeout!! Argh! So I'm going to have to nick some buffered/async disk IO routines from somwhere... the annoying this is that the XPRD program does not have any buffered IO and works fine... Argh!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! HBBSNode.library ================ fixed SerWriteStrWithTimeout() Node and Nodes/NodeX/Device =========================== added a config option called NullModemCable, if set to true then you can connect another computer to your computer via a serial port and connect to hbbs from that.. :-) Coooool! to get hbbs to connect, just press return on the other computer! today I've just done sooo much to the bbs, mainly tidying stuff and fixing things! 22-12-1995 ========== changed DOOR_GetLine(), it's not SUPERCOOLFABANDWHIZZO! :-) 21-12-1995 (PM) =============== XPR === added GUI and window, updates fine.. still have to make it refresh when you un-zoom the window! Node ==== Updated GUI, added more buttons on the NodeSettings window implemented N_ND->DoorContinue. HBBSNode.library ================ implemented DOOR_Continue() (causes further doors not to run if a door sets this to false) AskDLFiles ========== made it use DOOR_Continue Download ======== made it aware of AskDLFiles's DOOR_Return() setting Control ======= added EditorCMD to BBSGlobal Config. updated GUI 20-12-1995 (PM) =============== XPR === tiedied somemore. in testing this has hung a few times, more testing required Node ==== changed a screen commands, (Ratio is now BRatio) and added FRatio for Bytes Ratio and Files Ratio respectively added a COOL function for creating cool menu prompts.. MenuPrompt() fixed a rather silly bug in DisplayScreen() it wasn't unlocking files if there were 0 bytes.. i was trying to unlock and filehandle rather than a filelock (confused vars FL with FH) :-) HBBSNode.library ================ added the function DOOR_MenuPrompt() pass it a string with the first letter of your options enclosed in square brackets ( []'s ) and hbbs will auto convert the string to cool colours and print it out for you! you can also pass it a default char so that it causes one option to be printed in bold. e.g. DOOR_MenuPrompt("More [Y]es, [N]o :",'Y'); currently everything is printed out in white except the brackets which are printed in yellow, the Y in the example above would be printed in BOLD text this is a cool function for providing a standard menu prompting scheme that can be used through out the bbs. I'll be adding parameters so you can change the colours, don't worry :-) Mail_Write ========== added a stack of options that you can select when you are creating a message also updated the messagebase stuff so that you can set an access level for a message. started creating a config structure for the mail doors to use. (this way the users can have thier own configuration for all the mail doors to use, it'll be stored as HBBS:mail/users//mail.cfg. Mail_Scan ========= updated to use the access level and door_menuprompt. 19-12-1995 (PM) - 20-12-1995 (AM) ================================= XPR === **Loads** more work done, it's all set-up and running withing the bbs environment now. It's interesting to note that term 4.5 comes with xprzmodem.library version 2.58, I had 3.0 and the latest is 3.51. 3.51 causes term and ncomm to software fail when transferring between each other and the nullmodem.device 2.58 just sits there and timesout. and 3.0 works fine.. :-) ut I've got no docs for that version :-( I tried my xpr implementation with a some other xpr libaries, it only worked with znodem and zedzap libs so far.. I have to do more tests. the otherlibs may require some of the xpr 2.0 extensions, I've only implemented 1.0 so far.. Transfer ======== Updated to cope with the XPR door SelectProtocol ============== defaults to protocol 1 instead of waiting for user input if they type in some shite the first time they are asked Mail_Scan ========= more stuff done HBBSNode.library ================ added two more routines, FindConf() (returns a confdata structure of the users current conf, or if they are not in a conf yet it'll return a confdata structure of the last conference they were in... ValidConfNum() returns true if you pass it a valid conference number (index starts at 1) 18-12-1995 ========== YESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS! Finally At Last! Whay!! (if you couldn't tell, I'm Excited!) XPR === Implemented! 17-12-1995 ========== Fuck! It's amazing how much work I've done over the last few days! :-) HBBSCommon.library ================== fixed a COOL bug in the AssignOK() routine in that say you had a HD with a volume name of "A3000_DH0:", it's device name being "DH0:" and you set a (say) upload path to somewhere on DH0: AssignOK() would incorrectly return FALSE! Oops! CLIProtocol =========== correctly returns errorlevel of door in N_ND->DoorReturn Transfer ======== deducts creds for files for that are downloaded successfully Node ==== Loads moe stuff changed, fixed and updated Control ======= ditto Mail_Scan ========= even more work done, this door is all but finished, implemented the mailscan lastread pointers (saved in HBBS:Mail/Users//MailScan.CFG) now supports a 'M' for mark as read, so you don't have to sit through millions of useless old mail the sysops seem to leave around (not that they will with HBBS, because messages can be set to expire! :-) Mail_Read ========= supports reading a list of mail messages, the list is created with CreateMsgList() and then saved using SaveMsgList() Mail_Read then read this list back in again and will let you read all the messages in the list. this is a really amazing feature, because you can then write another door to search the mail database for keywords, and build up a list of messages that you can then pass to Mail_Read which then let you read them! COOOOL or what ? Mail_Write ========== more work done, still needs a bit doing to it (you can't attach files yet!) CheckTags ========= changed to cope with the new updated Tag_File door (below) also changed the ansi and it looks much nicer now! Tag_File ======== actually checks for the existance of files now... :-) AskDLFiles ========== door (re)created fromm scratch, it works fine, needs more work doing to it, it's just functional now.. :-) (mind you, it looks pretty tho :-) 16-12-1995 ========== Node ==== Added CLS,PAUSE,ECHO and DOS as door types! :-) (for CLS to work, the _door option must also be set to CLS) Mail_Scan ========= Scans for ALL and EVERYBODY messages too Mail_Reply ========== created door, works ok! Editor ====== now appends to existing files is the LOAD parameter is specified FrontEnd ======== won't allow users access who's accounts have been disabled (status of 'L', for login's denied) 15-12-1995 ========== FrontEnd ======== Automatically logs in the a new user if the newuser door created an new account ok. NewUser ======= Revamped slightly. Mail_Read ========= added a continue prompt on long messages can delete mail now HBBSNode.library ================ Added a DOOR_ContinuePrompt() routine 14-12-1995 (PM) =============== MailRead ======== Very quick version done. Cannot be called from the R command yet, only the mail scanner can use it so far.. 13-12-1995 (PM) - 14-12-1995 (AM) ================================= Today has been a bit of a tidy-up day with lots of little (but important) things being done. Access Commands have been implemented (but only 10 access settings are loaded, of which only one is used (see the Status door and access command "AllowStatus") Check out HBBS:Access/#?, /Access/#?, /Access/#?. access data is updated when you a) login and b) change conference. This is actually a major thing beleive it or not... I'm surprised I've only just had to code it now... Also added a few new routines to both the libs (HBBSCommon and HBBSNode) hbbs also sets an env: variable called HNodeUser to the name of the person who's currently logged in. if no-one is logged in the variable will not be present the cool logoff screen is created using scripts and cli programs, see HBBS:Screens/Special/Logoff.txt HBBS:System/Amiga/CLI/ByeScript HBBS:System/Amiga/CLI/Figlet/#? (figlet just converts ascii text to large fonts made of ascii letters) Isn't hbbs wonderfull ?? :-) Node ==== F6 and SHIFT+F6 work now! AccountEdit =========== Right then, I've created this (smallish) and very unfinished door so that you can modify accounts by pressing F6 when a user is logged in. you can also run this from the command prompt, I've set it up so only users with an access level of 255 can do this. to run it just type "Accounts" at the prompt 12-12-1995 (PM) - 13-12-1995 (AM) ================================= DAMN I'M COOL.... Mailscan ======== Works a treat, implemented the little promptso you can call the "mailread" door now. it seems to be working 100%, even has nice special ANSI effects! MailWrite ========= Whay hey hey! Now we're cooking! This door has come along in leaps and bounds this evening.. It now writes mail to people! Hehe, it even handles multiple user mails (e,g, messages with more than one recipient) currently it does not do anything with internet/fideonet messages it does not let you select any flags, or attach files orlots of things actually, but hey, it works.. And I love it when doors compile and run first time after you spend 4 hours coding it.. :-) oh, and you can wipe-out all the files in a mail dir and hbbs won't complain, it'll just re-init everything for you automatically.. Editor ====== it had to happen sooner or later... A line editor! Yippie! Well, this is in a very early stage at the moment, it took me all of about 2 mins to write this one... it's also more of a "creator" that "editor" at the moment too :-) p.s. did you noticate that I've not started the "readMail" door yet :-) 7-12-1995 ========= Bollox... Life still sucks, aquafresh is sitting here next to me playing Sega Rally on my saturn, and he's quite shit at it :-) hehe.. Anyway, erm.. MailScan ======== Done more work, it's coming along quite nicely (still) 6-12-1995 ========= Well, life's still fucked today. The new fucking stereo for the car's gonna cost 300 quid, i need a new fucking head gasket for the engine, at another 300 quid. Then I need to replace a camera at 35 quid, and a personal stereo at 50 quid, followed by a new thermostat for the car at 20 quid followed by a new stereo surround for the car at 40 quid and 100 fucking quid for a new window in the car. FUCK Anyway... 5-12-1995 - The (Extremely) Bad Day =================================== ------------------------------------------------------ Warning - This Section May Cause Viewers Some Distress ------------------------------------------------------ Fuck Fuck Fuck Fuck Fuck Fuck Fuck, how bad can my life fucking get.. My car was broken into tonight, and I've just had the window broken, £300 quids worth of car CD player, 2 cameras and my personal stereo all fucking nicked. If I catch the bastard who did it I'm gonna rip his fucking head off, shove a 20000 volt mains cable up his ass and drop a bloody piano on his bollox. Today started badly when I noticed that a collar button had fallen off my shirt. Checked the mail, "Argh!" A letter from the bank saying "Please pay in 762 pounds into your account within the next 10 days", "Great" I thought. When I got to work ten mins late, all the fucking users rang me up saying "I can't get into vista" because the supposed "patch" from DEC had made the VT320 emulator even WORSE, then I couldn't send a fucking fax from the fax machine as it would not do 40 page faxes, the paper just jammed. So I tried using windows 95 on my pc to send a fax via my 28.8k courier and all it says is "Fax Transmission Inturupted", Great Fucking Help that is. So we try another PC, it then comes up saying "Intermittent memory error" and fucks itself. So that pissed me off, then we got a new printer in and we couldn't plug that into the fucking machine it was supposed to plug into as it came with a parallel interface rather than a serial interface. Then the pathworks license allocator would not fucking work so all these PC's could not map their "E:" drive to the (crap) VAX. So I had to spend 3 bloody hours fixing that. Then I came to set up my own spare PC and would the hard disk parition itself ? Would it fuck as like.. So, i then got another HD slapped that in all fine, copied about 200MB of warez 2 it. By that time it was about 7:30pm so i thought "I'm off now.." Went to my car, noticed the light in the glove box was on and I thought to myself "I'm sure I shut that when I came back from lunch", Went to open the door of the car and noticed the window had been smashed and my fucking new car cd player had ben nicked! Not only did they nick my car CD player, but they nicked my new "Alannis Morissette" CD I bought YESTERDAY! That was still in the cd player from lunchtime. Argh! Now it's started snowing (it had to snow the day my car has no fucking glass in the window of course, couldn't snow the next week could it, no, even the fucking weather has it in for me today), So it's fucking freezing and I've got to drive 8 miles home with no window, so I sat in my car freezing my nuts off all the way home. After I get home, I turn my Pentium PC on to copy all the warez from my spare PC, and after a moment i notice that it's making a rather loud sound. Fuck, the cables have just hit the fan that sits ontop of the pentium chip. Fuck you INTEL, why did you have to design such a shite processor! Then I checked out my "Home Contents" insurance to check wether my car stereo comes under it, and NO, course it fucking doesn't. FUCK. Damn this stupid fucking country. I couldn't afford "Fully Comprehensive" insurance earlier in the year because no insurance companies would do it as I'm 21, have a BMW 316 and haven't got any "No-Claims" bonus. The fucking insurance cost nearly as much as the car did. After all, the car was made in 1983 and I bought it for 750 quid but the insurance still costs 500, third party only (not even fire and theft..) CUNTS, I HATE LIFE IT, SUCKS, WHY DO WE HAVE TO WORK FOR A LIVING, I JUST WANT TO SIT AT HOME PLAYING SATURN/PSX/NEO-GEO/3DO GAMES AND CODE ON MY AMIGA, WITH A BOTTLE OF MALIBU SITTING NEXT TO ME, WITH AN ENDLESS SUPPLY OF PC'S I CAN KICK THE SHIT OUT OFF FOR BEING SO DAMN CRAP. FUCKING COUNTRY. FREEDOM, BOLLOX I SAY. Oh, and I've not done a fucking thing on HBBS today either. 3-12-1995 ========= Created the "Download" door modified transfer door to (temorarily) handle downloads Common/Structures.C ------------------- modified Struct TaggedFile (removed ExplicitPath and added WarezFile) done more work on the mail scanner CliProtocol =========== Removed banner Control ======= fixed bug in loading data from "HBBS:System/Protocols" file it was looking for "UNIDIRECTION" or "BIDIRECTION" but the data file had "UNIDIRECTIONAL" and "BIDIRECTIONAL"... (note the "AL" on the end!! whoops!) 2-12-1995 ========= done more work on the mail scanner 1-12-1995 ========= Oh shit, Time's running out, it's that festive season again.. Node ==== Fixed bug with SetWatchTitles() that would still try and set the window and screen titles of the watch window even if it was closed.. (caused system crash) N_ND->ActiveDoor->SystemOptions is always allocated, this would have been a null pointer if an _param_xx= was not specified, which caused problems for doors that do not check for a null pointer.. It also makes the door coder's life easier (but not mine) as it's one less thing they have to worry about. Done loads more on the mailscan door this evening too.. 29-11-1995 ========== Yeah! Another 2 months at macmillan.. Coooool. Loadsamoney.. No Erm, back to life and hbbs and that kind of thing.. !NewDoor/Main.C =============== set default stack size to 16k, this is because if you call many routines in the shared library (hbbscommon.library) you might run out of stack space causing spurious errors at random places due to memory corruption. All_Levels (access file) ======================== Setup "C" and "EMAIL" doors to use the "write_mail" door (see below..) note the use of _Param_1= Mail (note: as of today none of this works, I'm just laying the groundwork for it..) ==== Created all the dirs for the mail sub-system. HBBS:Mail/Public HBBS:Mail/Users HBBS:Mail/Sysop HBBS:Mail/Groups HBBS:Mail/Groups/LSD (for use with example setup, see BBSGroups in BBSGlobal) HBBS:Conferences//Mail from the above you can see that there are a few places for mail to reside. each user will have a *private* mailbox, they have a directory in HBBS:Mail/Users the dir name is the same as the users ID (not handle) e.g. HBBS:Mail/Users/1 the sysop has his own private mailbox (as well as a user mailbox) in which stuff like sysop comments are placed there is a public dir, any mail in here is scanned by all users everytime they login, this is where system ealls go each conference has it's own mail dir, this is where conference related mail goes it can be addressed to individual users or ealls, e.g. this is where you'd tell all your amiga users to download a new amiga release, rather than creating an eall in the public mailbox then you have group mail, a user can address a mail message to a particular group group mail works on a sort of bulletin board principle, a tag for each user having read a message is saved so they dont read it again. mail will have expiry dates! (yeah, ok, all you sysops fed up of asking users to delete thier mail can line up in a queue and thank me one at a time!) Write_Mail ========== Started writing this door now, just creating some routines that will be put into hbbscommon.c at the moment, like things for checking a list of user handles passed to a function via a string, it then checks the usernames are valid, and passes them, as well as the id numbers, back to the user as well as a return value. (true, false) See HBBS:Source/User_Doors/Mail/Mail_Common.c for some interesting info on how mail messages are made.. 28-11-1995 (AM) =============== Just got back from watching the new james bond film "Golden Eye", if you've not sen it yet then do so now! It's cool... Total Blast Fest! Why do I do this ? It's 01:36 am and I'm sitting here coding... !?! Still, Sega Rally on my saturn is COOL, got it on saturday so spend most of saturday evening with 4 m8s playing it on it's split screen mode. Gfx wise it's just as good (if not better) than ridge racer on my ps-x... Control ======= Checking some enforcer hits caused by a missing conference directory. It turned out it was caused by the routine HBBS_DoErrorMessage() in HBBSCommon.library when it was passed a null pointer for the errormessage HBBSCommon.C ============ Fixed enfocer hit in HBBS_DoErrorMessage() Node ==== Calls "CheckUser" system door to check that the users account is ok. the users setting for language is not used. .TXT is NOT automatically appended to a screen name. If a user is not vaid (i.e. not logged in) then the first language defined in BBSGlobal will be used. See HBBS:BBSGlobal, LanguageExtn and LanguageName. SelectLanguage Door, New User Door, CheckUser Door and Node_Input.c - DisplaySpecialScreen(). CheckUser ========= Door Created Checks all the users userdata is current and valid. Can be used to check for stuff like sentbys. Currently only checks selected language and conference are valid. SelectLanguage ============== Displays a list of languages availiable to the user and lets them pick one 23-11-1995 (PM) and 24-11-1995 (AM) Alpha Release 03 ==================================================== Argh, It's 1:54 am and I need sleep... I'm just about to lha this up now then I'm off to bed... L8rz... Ok, the main things that have been done between this alpha version and the last one is the handling of uploads. File ID's are now extracted and added to file lists.. (p.s. I've not included ZIP,UNZIP, LHA, TXTExtract, DMSDescript, GIFDesc or any other util used for handling archives or file ID's as you should already have these, I will however release them with the full version of HBBS) Oh, and I noticed that HBBS has been spread around many BBS's, i don't want HBBS being spread in it's current form (i.e. unfinished), I'm only releasing it like this to other possible sysop's and door coders.. It *may* be spread to all coders/sysop conferences however.. But not to general Amiga Warez conference... And woe-betide anyone who uploads it to Aminet!! Just so you know.. I've put some small files in HBBS:Nodes/Node3/PlayPen/T for you to test the uploads with. copy them into the nodes playpen when HBBS tells you to copy files to the playpen Have fun now.... Node ---- Now Supports 2 new door types. these are: SCREEN : just displays a text screen (pass the full file name as to _Door option) SSCREEN : displays a Special Screen (pass just the screen name with a path and without an extension as the _Door option.. E.G. 1 QS_Type_1=SSCREEN QS_Door_1=QuickStats typing QWS at the bbs prompt will force hbbs to look in the conference's screens/special dir for a file called "QuickStats." (e.g. QuickStats.TXT), if it's not there it'll look in the node's screens/special dir followed by hbbs:screens/special.. E.G. 2 QS_Type_1=SCREEN QS_Door_1=HBBS:Screens/Misc/QuickStats.TXT typing qs at the bbs prompt will force hbbs to display the file above.. HBBSCommon.library ------------------ HBBS_LoadConfig() does NOT call HBBS_LogError() when it can't open a config file anymore.. If you have optional config files then you get rather large ErrorLog files. I might make it off-onable tho.. Let me know if you want it ? *I* AddCreds -------- Door Created! You should notice the stats going up a bit for uploaded files.. Also...., Get this: I've built in a little auto-award part to this door, check out the file HBBS:Doors/System/AddCreds/AddCreds.CFG basically you can get AddCreds to automatically add extra (or even remove) credits for a particular file or files. As Always, Amiga Wildcards are supported so you can have: AwardFile_1=LSD#? AwardOpts_1=*3 or AwardFile_2=PGS-ZD.LHA AwardFile_2=+2000000 You get the jist... (it supports +,*,- and / options ) Cool, isn't it ?? MoveFile -------- Created Door it basically moves a file from the playpen to a HOLD, BAD or UPLOAD dir. I wrote this at about 1:20am and I need some sleep now so I've not had change to test it much, although it appears to be working ok.. If it give you greif then remove the door from the "System" door list.. It does however check for validated disks, free disk space and valid assigns, something that /X NEVER DID!! :-) But hey, that's a suprise right! NOT!!!! If it cannot move a file then it'll attempt to put it in HBBS:LostFiles and will tell you so (also logs this in HBBS:ErrorLog) 22-11-1995 (PM) and 23-11-1995 (AM) =================================== CheckTags --------- Nothing changed, just a reminder that you can use all wildcards here.. so #?.l??, *.ZIP or even ~(#?.LHA|#?.LZH) (the last example would clear all tags that did not end in .LHA or .LZH just if you didn't know what the ~, | or () things did.. :-) Amiga wildcards rule... Node & HBBSNode.library ----------------------- The MaxLen option of HBBS_AdvancedGetLine() works ok now.. (yeah!!!) for an example, upload a file with no File_ID.DIZ, the ModifyDIZ door uses this function.. File ID related doors --------------------- Updated bits and bobs here and there... looking much more like it now.. System/FileID ------------- There's now an option called Add_RenameDIZ_n=TRUE|FALSE option for each file type.. I was thinking of making the lines in the file be the format n_OptionName=blah rather than OptionName_n=blah what do you think... 20-11-1995 (PM) and 21-11-1995 (AM) :-) ======================================= HBBSCommon.C ------------ Added HBBS_SaveFile(), it saves the ln_name items of a linked list to a text file. Needs more error checking added to it. For an example see "hbbs:source/doors_system/checkfiles/Main.c" FileList -------- Changed output of ansi a bit recognises the P id. ExtractDIZ ---------- Created work/.ADD as well as work/.DIZ now. the former is the file that gets stored in the archive as the file_id the latter is what is added to the file lists.. (it ADDS file_id's as well as extracts them now..) AddDIZToList ------------ This now works fine.. I'll have to make it read the following files before it adds a diz.. work/.DIZ work/.MISC stuff like sysop comments, sent by etc are stored in the .MISC file in the format of the file list. 19-11-1995 ========== Just a reminder, if you want to test the upload door using something like Zmodem from your terminal program, then load it up, make sure you are using Node 3, set your terminal programs serial device to NullModem.device (instead of serial.device) and set the unit number to 7. Then make sure node 3 is running the await connect door. If so then just type ATD in your terminal program, press return and after a few seconds it should connect to the BBS! Whay.. Then log in as normal and just type out the "U" door... Distribution archives are now called HBBS-A??.L?? the first .LHA file is renames to .LHA to stop /X systems skipping it due to the archive being a multivolume archive. Common/Stuctures.c ------------------ Added Various items to various structures, you *MUST* re-compile *all* of your programs that #include this file. Node ---- When waiting for a call, Pressing F8 to switch between window/screen now causes the "await" (await connect) door to re-display the await.txt screen Added a MaxDIZLines to the node settings. (N_ND->NodeSettings.MaxDIZLines) N_ND->MaxDIZLines defaults to the above setting when the node is reset. JoinConference -------------- Modified so that it copies N_ND->CurrentConf->MaxDIZLines to N_ND->MaxDIZLines when you join a new conference. Skips conferences that a user doesnot have access to when they use > or < at the prompt If they are a NEW user then the conferences that they do not have access to will notappear in the list If they are NOT a new user but don't have access to a particulat conference then that conference will show up in RED. CheckFiles ---------- removed checking of sysop file and loading diz. moved LoadDIZ to a more generically usefull function called HBBS_LoadFile() and placed it in HBBSCommon.c changed references from Ask_UL to Conform_UL HBBSCommon.c ------------ Added HBBS_LoadFile(), loads a file into a linked list, one line of text for each node in the list. free output with FreeStrList() get items with HBBS_ListName() etc.. Rather handy i thought... AskUl ----- Renamed to ConfirmUL to avoid confusion between AskUL and AskULFiles (yet to be created) 14-11-1995 ========== Released alpha version 02 onto digital candy this morning. FileList -------- Sucessfully calls the "A" door to tag files 12-11-1995 Alpha Release 02 =========================== Heheh, well, I didn't get my arcade machine yet, still waiting for it to arrive, but I did get a sega saturn last weekend, so most of this week has been spent playing on that and watching various films like Under Seige 2, Clueless and Apollo 13.... Sorry people! Oh well, atleast I got loads of work done on it this evening... it's 10:00pm now and I started at 5:00pm so I think I've been productive today.. Tomorrow is cinema day (cheap day!) so I doubt I'll get much done then.. The distribution of this (alpha) version if done by multi-volume LHA archives now, each file will be called HBBS-A.L?? e.g. HBBS-A01.LHA HBBS-A01.L01 HBBS-A01.L02 Door coders should set their program's stack to 16384 (or thereabouts) if they are going to spawn other programs themselves (using HBBS_RunDOSCMD()) to do this use LONG __stack=16384; somewhere just after your includes.. AskUL ----- Door Created, all working OK.. Await Connect (Door) -------------------- if Await.TXT is found in a screens dir then it does not display the list of function keys to you. (i.e. you're supposed to have them in the .txt file) Created a nice little Await.TXT and stored it in HBBS/Screens/.. Special/Ansi/Await.TXT Common/Strings.c ---------------- added str_CSI_SF1-10 for shifted function keys System/FileID (Config File) --------------------------- changed @?@ codes to {?} codes (like the menu prompts use..) don't forget to use options like lha's -m for other diz extractors.. ExtractDIZ (Door) ----------------- Actually extracts the file id's now... *** Door not finished, until futher notice you must specify all options in the System/FileID file for each type of file to prevent errors Node ---- You now have to press ShIFT+F10 to log a user off instead of just F10 which is safer, no more accidental logoffs Runs a system door called Speed_ after frontend. (still displays the screen too...) You can press F4 to re-display the await connect screen 2-11-1995 ========= Doh, I'm slipping, not been doing any coding for ages again, it's this damn new playstation games that I've bought.. :-) Too many games coming out on it now! Oh nooo!! I just remembered, my new *arcade* machine is arriving next week complete with magic sword, gryzor, rygar and snow brothers P.C.B's.. That means at least a week of no more coding... ExtractDIZ ---------- Did a bit more work on it.. It's getting there... 24-10-1995 ========== ExtractDIZ ---------- Created door, not finished in today's session.. It will be a dual function door that will ADD and EXTRACT/UPDATE file id's from/to uploaded files... you specify the mode using N_ND->ActiveDoor.SystemOptions AwaitConnect ------------ Added F5, Toggle Modem Debug Who --- Changed ANSI Wall ---- Changed ANSI Added a line of -'s to the top of the screen before the wall lines are printed only adds lines to the wall if the line is 4 chars or more CheckTags --------- Re-Wrote most of the CheckTags door. It's now LOADS smaller, and much more optimized It does not call the Add_Tags door once for each file the user wants to tag, instead it calls it once with all the files to tag as parameters Added help to it fixed all bugs with old version (due to re-write..) it now will ignore spaces before,between and after parameters. (other door writers should take note of how this is done, check out the source..) 17-10-1995 ========== Created CheckFiles door, created CLIProtocol door uploading to the node's playpen now works! Modified the protocols a little bit (see struct ProtocolNode in structures.h) 11-10-1995 ========== Control ------- Removed enforcer hit when "control" closes. Node ---- Node's now save their screenmode preferences to hbbs:system/data/nodex_private.cfg to save a node's window position and screenmode click the "Save Windows" button on the node's settings window. Removed enforcer hit after a node shuts down. NewUser ------- NoNewAt_.TXT works HBBSNode -------- Added DOOR_PausePrompt(char *prompt) to the library. it does the same as a @^PAUSE^@ command in a screen file... Ahh shit, not worked on hbbs for 2 weeks. At this rate it's never gonna get finished! 25-09-1995 ========== Wrote the Select_Mode utility (HBBS:Utils/Select_Mode) Changed the "SetupAssigns" script. The docs (BBSGlobal.Guide has not been updated yet!) The current mail doors (MS, R, E and C at the bbs prompt) will be scrapped as my (little) brother wrote them and they're shite and full of memory leaks! Check out HBBS:Docs/Doors.TXT for full explanation of how each door works! (note, I've just started working out how the new mail doors will work) Control ------- Moved scr#? options from BBSGlobal to seperate file The Save Button on the Config window now works! Node ---- The scr#? settings in NodeGlobal and NodeLocal still work, but they will also be moved to a seperate file soon! You can now have a door type CLI as well as NORMAL in the Command list files (HBBS:Commands/System), e.g. FrontEnd_Type_1=NORMAL FrontEnd_Door_1=HBBS:Doors/System/FrontEnd/FrontEnd.HBBS FrontEnd_Type_2=CLI FrontEnd_Door_2=HBBS:Scripts/CheckMem The "Checkmem" program above is a normal amigados program. note: the node number is still added to the programs arguments, as are the BBS Prompt commands! (great for shells eh!!) CheckTags --------- you can go "A *" to clear all file tags at the BBS prompt added a few more printed messages HBBSCommon.library ------------------ FreeStr() now actually sets the variable being freed to NULL regardless of a call to freevec()